class FamiliaresController < ApplicationController
#MODULE: Datos Familiares
  
  before_filter :cargar_usuario
  # GET /familiares
  # GET /familiares.xml
  def index
    @familiares = @usuario.familiares.all


    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @familiares }
    end
  end

  # GET /familiares/1
  # GET /familiares/1.xml
  def show
    @familiar = Familiar.find(params[:id])
    @usuario = @familiar.usuario

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @familiar }
      format.js  { render :layout=>false }
    end
  end

  # GET /familiares/new
  # GET /familiares/new.xml
  def new
    @familiar = @usuario.familiares.new

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @familiar }
      format.js  { render :layout => false }
    end
  end

  # GET /familiares/1/edit
  def edit
    @familiar = Familiar.find(params[:id])
    @usuario = @familiar.usuario
    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @familiar }
      format.js  { render :layout => false }
    end
  end

  # POST /familiares
  # POST /familiares.xml
  def create
    @familiar = @usuario.familiares.build(params[:familiar])

    respond_to do |format|
      if @familiar.save
        format.html {
          flash[:notice] =  'Familiar creado correctamente.'
          params[:oper].nil? ? redirect_to(cuenta(@familiar.usuario)) : render(:text => "Ok")}
        format.js {actualizar_view}
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @familiar.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /familiares/1
  # PUT /familiares/1.xml
  def update
    @familiar = Familiar.find(params[:id])

    respond_to do |format|
      if @familiar.update_attributes(params[:familiar])
        format.html {
          flash[:notice] = 'Familiar actualizado correctamente.'
          redirect_to(cuenta(@familiar.usuario)) }
        format.xml  { head :ok }
        format.js {actualizar_view}
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @familiar.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /familiares/1
  # DELETE /familiares/1.xml
  def destroy
    @familiar = Familiar.find(params[:id])
    @usuario = @familiar.usuario
    @familiar.destroy

    respond_to do |format|
      format.html {}
      format.js do
        render :update do |page|
          page["tr-familiar-#{params[:id]}"].remove
        end
      end
    end
  end

  private
  def cargar_usuario
    @usuario = Usuario.find(params[:usuario_id]) if params[:usuario_id]
  end

  def actualizar_view
    @familiares=@familiar.usuario.familiares
    @usuario=@familiar.usuario
    @action_name="edit"
    render :update do |page|
      page.replace_html "familiares", :file => "familiares/index"
      page.visual_effect(:highlight, "tr-familiar-#{params[:id]}", :duration=>2.5)
      page << "makeColorBox()"
    end
  end
end
